package dominioEntity;

import hbt.PersistentObject;

import java.sql.Date;

import javax.persistence.CascadeType;
import javax.persistence.Entity;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;

import org.hibernate.annotations.LazyCollection;
import org.hibernate.annotations.LazyCollectionOption;

import dominioTO.RemitoClienteTO;

@Entity
public class RemitoCliente extends PersistentObject {
	
	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	
	private Integer numeroRemitoCliente;
	private Date fechaEmision;
	
	@LazyCollection(LazyCollectionOption.FALSE)
	@ManyToOne(cascade = CascadeType.ALL)
	@JoinColumn(name = "cliente_id")	
	private Cliente cliente;
	
	@LazyCollection(LazyCollectionOption.FALSE)
	@ManyToOne(cascade = CascadeType.ALL)
	@JoinColumn(name = "ordenPedidoCliente_id")	
	private OrdenPedidoCliente ordenPedidoCliente;
	
	
	
	public RemitoCliente() {
		super();
		// TODO Auto-generated constructor stub
	}
	
	public Date getFechaEmision() {
		return fechaEmision;
	}
	public void setFechaEmision(Date fechaEmision) {
		this.fechaEmision = fechaEmision;
	}
	public Cliente getCliente() {
		return cliente;
	}
	public void setCliente(Cliente cliente) {
		this.cliente = cliente;
	}
	public OrdenPedidoCliente getOrdenPedidoCliente() {
		return ordenPedidoCliente;
	}
	public void setOrdenPedidoCliente(OrdenPedidoCliente ordenPedidoCliente) {
		this.ordenPedidoCliente = ordenPedidoCliente;
	}
	/**
	 * @return the numeroRemitoCliente
	 */
	public Integer getNumeroRemitoCliente() {
		return numeroRemitoCliente;
	}
	/**
	 * @param numeroRemitoCliente the numeroRemitoCliente to set
	 */
	public void setNumeroRemitoCliente(Integer numeroRemitoCliente) {
		this.numeroRemitoCliente = numeroRemitoCliente;
	}

	public RemitoClienteTO getDTO()
	{
		RemitoClienteTO dto = new RemitoClienteTO();
		dto.setNumeroRemitoCliente(numeroRemitoCliente);
		dto.setFechaEmision(fechaEmision);
		dto.setCliente(cliente.getDTO());
		dto.setOrdenPedidoCliente(ordenPedidoCliente.getDTO());
		return dto;	
	}
	

}
